package com.example.micro_property_springboot.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.example.micro_property_springboot.pojo.SysOperLog;
import com.example.micro_property_springboot.pojo.vo.OperLogQueryVO;

import java.util.List;
import java.util.Map;

/**
 * 操作日志服务接口
 * 提供操作日志的业务逻辑方法
 */
public interface SysOperLogService extends IService<SysOperLog> {
    
    /**
     * 保存操作日志
     */
    boolean saveOperLog(SysOperLog operLog);
    
    /**
     * 分页查询操作日志
     */
    Map<String, Object> queryOperLogWithPage(OperLogQueryVO query, Integer pageNum, Integer pageSize);
    
    /**
     * 根据ID删除操作日志
     */
    boolean deleteOperLog(Long id);
    
    /**
     * 批量删除操作日志
     */
    boolean batchDeleteOperLogs(List<Long> ids);
    
    /**
     * 清空操作日志
     */
    boolean clearOperLogs();
    
    /**
     * 删除指定时间之前的操作日志
     */
    boolean deleteOldOperLogs(String date);
    
    /**
     * 获取操作日志统计信息
     */
    Map<String, Object> getOperLogStatistics();
    
    /**
     * 获取操作类型统计
     */
    List<Map<String, Object>> getOperTypeStatistics();
    
    /**
     * 获取模块访问统计
     */
    List<Map<String, Object>> getModuleAccessStatistics();
}